function str2Json(jsonStr){
	return JSON.parse(jsonStr)
}
function json2Str(jsonStr){
	return JSON.stringify(jsonStr);
}

// 表单序列化成JSON对象，适合普通表单
function form2json(formDom){
	var o = {};
    var a = $(formDom).serializeArray();
    $.each(a, function() {
        if (o[this.name]) {
            if (!o[this.name].push) {
                o[this.name] = [ o[this.name] ];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
}

//动态加载js
function loadJs(url,callback){
	jQuery.getScript(url)
	 .done(callback)
	 .fail(function() {
	    $.appTip("加载JS：["+url+"]失败！");
	});
}

//json对象转指定格式字符串
function jsonFormat(jsonDom,symbol){
	var o = [];
    $.each(jsonDom, function(key,val) {
       o.push(key+"="+val);
    });
    return o.join(symbol);
}

// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符， 
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 例子： 
// (new Date()).format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
// (new Date()).format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
Date.prototype.format = function (fmt) { //author: meizz 
    var o = {
        "M+": this.getMonth() + 1, //月份 
        "d+": this.getDate(), //日 
        "h+": this.getHours(), //小时 
        "m+": this.getMinutes(), //分 
        "s+": this.getSeconds(), //秒 
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
        "S": this.getMilliseconds() //毫秒 
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

//字符串转时间对象
String.prototype.toDate = function(){
	//var str ='2012-08-12 23:13:15';
	var str = this.replace(/-/g,"/");
	return date = new Date(str);
}

//字符串时间格式化
String.prototype.format = function(fmt){
	if(this.toString()=='0000-00-00 00:00:00') return "";
	return date = this.toDate().format(fmt);
}

//文件上传
$.appUpload = function(opts){
	var elList = opts.elList ;
	delete opts.elList;
	var formData = {
			'timestamp' : _timestamp,
			'token'     : _timestamp_md5,
			'isImg'     : opts.isImg||1
	}
	formData[_session_name] = _session_id;
	delete opts.isImg;
	var fileTypes = '';
	var fileTypeDesc = '';
	if(formData.isImg==1){
		fileTypes = '*.gif; *.jpg; *.png; *.bmp;'; 
		fileTypeDesc = '图片文件';
	}else{
		fileTypes = '*.gif; *.jpg; *.png; *.bmp; *.doc; *.xls; *.xlsx; *.zip; *.rar;*.swf;'; 
		fileTypeDesc = '自定义文件';
	}
	var defaults = {
		 'buttonText' : '上传',
	     'fileSizeLimit' : _upload_size,
		 'fileTypeDesc' : fileTypeDesc,
		 'fileTypeExts' : fileTypes,
		 'height'   : 28,
		 'width'    : 80,
		 'multi'    : false,
		 'formData'     : formData,
		 'swf'      : _tpl+'/admin/js/uploadify/uploadify.swf',
		 'uploader' : _tpl+'/admin/js/uploadify/uploadify.php',
		 'onUploadSuccess' : function(file, path, response) {
			if(response==true){
				this.button.parent().prev().prev().textbox('setValue',path);
			}
		 }
	}
	
	opts = $.extend(defaults, opts);
	var id = opts.id;
	delete opts.id;
	$("#"+id).uploadify(opts);
}